                               Broadcom Corporation
                             5300 California Avenue,
                                 Irvine, CA 92617

                                  Release Notes 
                 Broadcom BCM570X UEFI Diagnostics for IA-32 and x64

Version 20.15.11 (2023.06.08)
==========================
1 DCSG01496860: Check extended directory when attempting to resize bootcode image
2 DCSG01499784: Add 4-part ID to support link flap avoidance and keep 1Gb

Version 20.15.10 (2022.05.13)
==========================
1 DCSG01216046 : Add new flashes support on 5719 

Version 20.15.9 (2021.12.16)
==========================
1. DCSG01074515: Fixed a bug to erase VPD when tFRU program twice.


Version 20.15.8 (2021.11.24)
==========================
1. DCSG01074515: FRU in NVRAM support
2. DCSG01057069: Fixed nictest A5 problem

Version 20.15.7 (2021.10.28)
==========================
1. DCSG01064263: Add 4-part ID to support link flap avoidance and keep 1Gb
speed in Vaux mode

Version 20.15.6 (2021.7.26)
==========================
1. CTRL-54444 : Add new flash MT25QL128 support on 5720
2. CTRL-54737 : Make option #42/#43 visible to certain OEM devices.
3. CTRL-54991 : Support 3-bits NCSI id with nvm cfg option 61 

Version 20.15.5 (2021.3.25)
==========================
1. CTRL-53234: Bypass testing BIT_8 of register 0xBC if clock power
               management is disabled.

Version 20.15.4 (2020.4.3)
==========================
1. CTRL-47472 : Fix issue where option #42 could not be modified.

Version 20.15.3 (2019.10.16)
============================
1. CTRL-44026 : Do not overwrite MN field.

Version 20.15.2 (2019.9.27)
==========================
1. CTRL-43315 : Increase valid SN string length to 16.

Version 20.15.1 (2019.8.2)
==========================
1. CTRL-40815 : Make option #43 visible to certain OEM devices.

Version 20.15.0 (2018.7.8)
==========================
1. CTRL-30243 : Fix uEFI b57diag failed to save NVRAM content
           Fix:     Add S_IRWXU option to open file	
		   
Version 20.14.0 (2018.4.16)
==================================
1. CTRL-28695 : Fix loopback testing issue
           Fix:     Add delay to avoid duplicate Rx packet processing

Version 20.6.08 (2017.9.14)
==================================
1. CTRL-26510 : PCA version problem on b57diag
	   Fix:   Add an option (-g) of seprg to remove restoring of EC and V5.
	   
Version 20.6.07 (2017.9.4)
==================================
	1. CTRL-26510 : PCA version problem on b57diag
	   Fix:   Remove EC and V5 restoring feature.
	   
Version 20.6.06 (2017.8.28)
==================================
	1. CTRL-26463: uEFI b57diag nvmran test (nictest C1) fails while DOS b57diag pass
	   Cause: The CMD done checking of NVRAM is based on polling mode of CPU 
	   computing and TIMEOUT happened before NVRAM command done to cause this 
	   problem.
	   Fix:   To increase TIMEOUT time.
	          
Version 20.6.05 (2017.7.06)
==================================
	1. CTRL-25779: b57diag hangs on customer system
	   Cause: 1. SystemTable->StdErr can not output string.
	          2. ShellAppMain data structure is not init correctly
	   Fix:   1. Use SystemTable->ConOut instead.
	          2. Init data structure correctly.

Version 20.6.04 (2017.5.19)
==================================
	1. Support EDK2, remove EFI_Toolkit_2.0.
	2. Fixed a problem where the cursor is not current;
	3. Fixed a system crash problem. The system has more than 300 PCI devices,
	   internal device structure only has 64 entries.  During initialization, 
	   previous b57diag store all PCIE devices in the data base, and thus caused
	   system crash.  The fix is to only store the devices that match the 
	   specified vendor ID.
	4. Fixed (JIRA) (CTRL-25471): On OEM system, previous UEFI will result in
	   RSOD when exit.
	5. Fixed the problem that b57diag does not support relative path with EFI
	   Shell v2.0 


Version 20.6.03 (2017.5.5)
==================================
1. CTRL-25327 
      UEFI B57diag hangs with 36 devices in the system
   Fix: support up to 64 devices.

      
Version 20.6.02 (2017.04.06)
============================
  1.Customer system has more than 32 NX1 devices, b57diag64.efi hangs during bootup.
    Cause: for history reason, we use a DWord as the device bitmap. So that diag 
	   cannot init more than 32 devices. 
    Fix: Do not init the devices whose number larger than 32; This workaround the 
         b57diag hang problem. Combined with option 'seldev', we can run the 
         manufacturing tests on a system that has more than 32 devices.

 2. With fix#1, if the total device is exactly 32, the manufacturing test cannot be run.
    Cause: the device map is zero because the existing logic problem.
    Fix:   Calculate the correct device map if the total device is 32.

 
Version 20.6.01 (2016.12.23)
==================================
1. CTRL-24154 
      Add b57diag sysops support for 8S serial numbers

      
Version 20.6.00 (2016.9.8)
==================================
1. CTRL-22904 
      b57diag cpu test fails on OEM system

      
Version 20.4.00 (2016.5.13)
==================================
Enhancements:
1. Request
      Update version to 20.4.00
      
Version 17.4.05 (2016.3.22)
Enhancement:
1. CTRL-21842
	  Need b57diag support for new 5719 LFA generic IDs
	  
Version 17.4.04 (2016.2.17)
1. Problem (CTRL-21561) 
	  Please add 4-part ID to support link flap avoidance
	  
Version 17.4.03 (2016.1.20)
1. Problem (CTRL-21496) 
	  The vpdoem command incorrectly populate MAC address in the MN field 
	Fix: 
	  Modified -vpdoem don't update MN field in VPD section.
	  
Version 17.4.02 (2015.12.18)
1. Problem (CTRL-21409)
	  b57diag user's guide - "#24 Management Firmware"
	Fix:
	  Modified as a correct description for secfg option 24.
	  
Version 17.4.01 (2015.10.27)
Enhancement:
1. CTRL-21108
	  Add an option in secfg menu for 5720 Serdes to control the inverting signal detect.
	  
Version 17.4.00 (2015.9.25)
1. Problem (CTRL-20934)
	  VPD export created via vpdgen does not appear correct cannot be restored
	Cause:
		The YB field had a wrong type when genetated values by vpdgen.
	Fix:
		Modified as a correct type for YB field.
		
Version 17.2.04 (2015.8.11)
Enhancement:
1. CTRL-20859
     Add the SPEED10/100 LED mode into LED option 
     
Version 17.2.03 (2015.6.12)
1. Problem (CTRL-20598)
     Upgrading firmware with b57diag showing error
    Cause: 
		Firmware update still have some problem on manufacture. Disable 
		fast-boot of CPU is not clean.
	Fix: 
	    Moved disable fast-boot to util_chip_global_reset function.
	    
Version 17.2.02 (2015.6.3)
1. Problem (CTRL-20598)
     Upgrading firmware with b57diag showing error
    Cause: 
      Some commands don't have to disable fastboot of CPU so that bootcode 
      initialization failure after reset.
	Fix: 
	  To disable fastboot of CPU after programming bootcode.
	  
Version 17.2.01 (2015.5.19)
1. Problem (CTRL-20336)
     Update bootcode may result in TruManage web not function when the web data in 
       the NVRAM has been moved to a new offset.
    Cause: 
      When B57diag has to move the Web Data in NVRAM, it needs to perform a graceful reset of the APE 
      management firmware:
        - if the web data is present in the NVRAM and was moved
        - if the APE management firmware is actually enabled and executing 
	Fix: 
	  Added a graceful reset of the APE management firmware if the web data int he NVRAM had to be 
	  moved to accomodate the new bootcode. 
	  
Version 17.2.00 (2015.4.13)
Enhancement:
	1. CTRL-20511
		b57dos / b57uefi diag: restore VPD fields to accomodate new 5719 NIC and ALOMs

		
Version 17.0.09(2015.3.18)
1. Problem
	The Bit_0 of APE_FW_BEHAVIOR cannot restore back to 1 after nictest
   Fix:
   	Modified restore APE_FW_BEHAVIOR values before the APE reset.
   	
Version 17.0.08 (2015.3.16)
Enhancement:
1. Added an option "-dev310" to match device orders for special purpose. 
2. CTRL-20348
     The customer would like to use the link flap avoidance function.
     
Version 17.0.07 (2015.1.30)
Enhancement:
1. Added an option in NVRAM to enable/disable advertise OEM feature through MBA.
	- 	94. Advertise OEM feature through MBA (Enabled 1, Disabled 0) 

Version 17.0.06 (2014.12.22)
1.  Problem(CTRL-20391) 
	  5720 APE CPU peripheral register failed occasionally after over 
		night test. 
	Cause: 
	  The failure register is SMBUS bitbang register.  The board SMBUS was 
	  connect the to host. Without the connection, there is no problem. 
	Fix: 
	  Skip this register test. The change applies to both 5719 and 5720.  

Version 17.0.05 (2014.12.17)
1.  Problem(CTRL-20340)
      When B57diag driver loaded, the b57diag does not hand shake with NCSI
    Cause:
      b57diag driver do not set the flag of driver start into ape share 
      memory..
    Fix:
      Added these flags into APE share memory when load/unload driver.
      
Version 17.0.04 (2014.11.4)
1.  Problem(CQ73978)
      EFI undi driver version is not displayed correctly
    Cause:
      Using the wrong format to display the undi driver version.
    Fix:
      Update the displaying format.
      
Version 17.0.03 (2014.10.28)

Enhancement:

1. Update nvram option 93.


Version 17.0.02 (2014.10.24)

Enhancement:

1. Resolve CQ73969 -Add options in NVRAM to enable/disable L1 and L0s advertisement.

Version 17.0.1 (2014.9.10)

1. Update the Copyright year to 2015.


Version 17.0.0 (2014.9.09)
1.  Problem(CQ73822)
      Serial Number request observed at the 6th device while running nictest from UEFI b57diag manufacturer mode.
    Cause:
      Unintentionally turn on a variable causing the message to occurred.
    Fix:
      Fix the variable issue.
      
Version 16.8.03 (2014.9.05)
1.  Problem(CQ73815)
      Program MAC address from DOS b57diag manufacture mode resulted in BMC no longer work.
    Cause:
      APE CPU was halted while programming mac address in manufacture mode
    Fix:
      Issue and reset to APE CPU.
      
Version 16.8.02 (2014.8.15)
1.  Problem:
      If user account records are deleted, removed, or cleared, the "macfg"
      command will still show the user accounts (1-4) with their 'default'
      values. Example:

                  Name             Roles        Enabled
        1. User - <null>           3                 No
        2. User - Administrator    1                 No
        3. User - Operator         2                 No
        4. User - Auditor          3,4               No

      Cause:
      The BMCFG library would return default values for user account records
      (1 through 4) if the records either didn't exist or did not contain
      expected properties.

      Change:
      Provide no default values in the BMCFG library for retrieving account
      records (only exception: the IPMI privilege level will default to 0x0F
      for "No Access", only other property values will be 0 or empty).

  2.  Problem:
      Configuration record sets created with the "mancfg -c" command would
      include a null/anonymous user as the first instance (account:1). BACS4
      TruManage view assumes that the first CIM_Account instance will always
      be the "Administrator" account and this causes issues. Also, the "null"
      account provides no functionality for DASH management and potential
      user confusion.

      Change:
      Do not create the anonymous/null user account record for client
      management configuration record sets (e.g. for use with BCM5762).

      Impact:
      Client management configurations only. Server management configuration
      record sets will continue to be created with the null/anonymous user
      account record (for IPMI/DCMI compatibility).
      
  3. Problem (CQ73741)
         B57uefiDiag: VPD - seprg and NULL chars.
     Cause:
         variable was not initialized to 0.
     Fix: 
         Reinitialize the variable.
      
Version 16.8.01 (2014.7.28)
    
    1. Problem (CQ73693)
         APP crash when program image with only one device.
       Fix: 
         Added a checking to avoid an invalid value from 
         util_findSecondaryPartner.
         
Version 16.8.00 (2014.7.1)
    
    1. Problem (CQ73629)
         The sechsum error with 8Mbit flash.
       Fix: 
         Fixed a bug in NVRAM checking functions.
         
Version 16.6.13 (2014.6.18)
    
    1. Problem (CQ73548)
         B57diag loopback fails.
       Fix: 
         Added an option called dev2344 to passed external loopback test for this special case.
         
Version 16.6.12 (2014.6.16)

    1. Fix b57diag does not run the full nictest (abcdfg groups) after an invalid command (nictest -n 2).
    
Version 16.6.11 (2014.6.10)
    
    1. Problem (CQ73485)
         B57uEFIDIAG: nictest D5 failed on OEM platform.
       Fix: 
         Disable power saving feature in D5 testing.
         
    2. Problem (CQ73471)
         Some Tcl variables in b57diag do not return correct values.
       Fix: 
         Update the Tcl variables value.
         
Version 16.6.10 (2014.5.21)
    
    1. Problem (CQ73456)
         IRQ field not removed from UEFI b57diag on OEM system.
       Fix: 
         Update the UEFI b57diag device display banner fields.
         
    2. Problem (CQ73473)
         Incorrect MAC addresses in the summary section.
       Cause:
         Some index counter was not set right.
       Fix: 
         Fix the index counter.
         
Version 16.6.09 (2014.4.30)
    
    1. Problem (CQ73433)
         Source config file show "Invalid option 95 entered" if system insert 5725+5720
       Fix: 
         Remove option 95 of secfg if device is not Logan.
         
    2. Program (CQ73445)
         The dump_all_cfg for option 95 is incorrect.
       Fix:
         Fixed the bad format for option 95.
    
Version 16.6.08 (2014.4.29)
	Enhancement:
    -----------
    1. Update the Macronix parts pagesize to 4KB to reduce programming time. 
    
Version 16.6.07 (2014.4.23)
    1. Problem (CQ73078)
         System Sender/Responder test intermittently failed.
       Fix: 
         Add a check to make sure the link status is fine in reference mode.
         
	Enhancement:
    -----------
    1. CQ73412  Add an option in secfg menu for Logan to disable/enable Runtime D3. 
         
Version 16.6.06 (2014.4.17)
    1. Problem (CQ73254)
         B57uEFIdiag v16.6.05: nictest C7 failed.
       Fix: 
         Omit C7 data testing in 64 BAR address.
         
    2. Problem (CQ73254)
         B57diag request for entering a serial number while running nictest or sender/responder test.
       Cause:
         Memory leak issue.
       Fix: 
         Remove the code that causes memory leak.
    
Version 16.6.05 (2014.4.15)
    Enhancement:
    -----------
    1. CQ72070 Request for UEFI diagnostics (b57daig) to support 64 bit addressing and 64 bit BAR address.
    
Version 16.6.04 (2014.4.11)
    Synchronize with B57win diag v16.6.04.
         
Version 16.6.03 (2014.3.28)
    1. Problem (CQ73254)
         bmcc complained the image dump from a 5762 with b57diag has Invalid Watermark.
       Fix: 
         don't create/encrypt a watermark unless a non-zero-length encrypted record exists (ignore 0-length encrypted records).
         
Version 16.6.02 (2014.3.19)
    Synchronize with B57win diag v16.6.02.
         
Version 16.6.01 (2014.3.17)
    Problems:
    -----------
    1. Problem (CQ73218)
         sedump OTP content of 57788 with v2.08 chip, but the output file is v2.05.
       Cause:
         Diag wrongly detect the otp version.
       Fix: 
         Detect the otp version correctly when sedump OTP image.

    2. Problem (CQ73078)
         System Sender/Responder test intermittently failed.
       Cause:
         This issue will be occurred when sending packets can't receive rapid from another port.
       Fix: 
         Modify the code of packet statistic correctly in the reference mode.
         
    3. Problem (CQ73081)
         b57wdiag v16.4.12: An error event is seen while running "reset c" command.
       Cause:
         APE CPU might be running while doing the reset command.
       Fix: 
         Halt the APE CPU prior issuing reset command.
         
Version 16.6.00 (2014.3.07)
    Problems:
    -----------
    1. Problem (CQ73187)
         Incorrect symbols appear when ccm v7.10.31 is programmed in NVRAM.
       Cause:
         The string of CCM version has not contained the null character.
       Fix: 
         Use another flied of CCM header to show CCM version.
         
Version 16.4.12 (2014.2.19)
    1. Problem (CQ73055)
         Error encountered while running nictest stress test in command line mode.
       Cause:
         Some flashes setting are not correct so that check NVRAM will be fail.
       Fix: 
         Change to correct settings.
         
Version 16.4.11 (2014.2.14)
    Problems:
    -----------
    1. Problem (CQ73000)
         Please update copyright year to reflect new year 2014 in NX1 diagnostic user's guide.
       Fix:
         Update copyright year to reflect new year 2014.
         
Version 16.4.10 (2014.2.12)

    Enhancement:
    -----------
	1. Undo CQ72547 : Remove a warring message for IRQ greater than 15.
    
Version 16.4.09 (2014.2.7)

    Synchronize with B57Win diag v16.4.09.

Version 16.4.08 (2014.1.28)
    Problems:
    -----------
    1. Problem (CQ72547)
         UEFI B57Diag does not show warning message when device(s) has IRQ 
         greater than 15.
       Fix:
         Add a warring message for IRQ greater than 15.

    2. Problem (CQ72569)
         The sewrite command does not work correctly with -virtual_nvram command line option.
       Cause:
         The address mapping is not correct with the virtual NVRAM.
       Fix:
         Modify address mapping for the virtual_NVRAM.
         
Version 16.4.07 (2014.1.15)
    Problems:
    -----------
    1. Problem
         An extra character was appended to the MN field.
       Cause:
         Terminating string character was not added at the end when doing parsing.
       Fix:
         Add the terminating character at the end.
         
Version 16.4.06 (2014.1.14)
    Problems:
    -----------
    1. Problem (CQ72404)
         B57wdiag fails to change option #23 on Port2 & Port3 of 5719.
       Cause:
         In #23 of secfg, we only detect port0 and port1 of 5719.
       Fix:
         Add port2 and port3 into #23 of secfg.

    2. Problem (CQ72400)
         B57uEFIDiag: Updated copyright banner to reflect year of 2014.
       Fix:
         Change as 2014.
         
Version 16.4.05 (2014.1.10)
    Enhancement:
    -----------
    1. CQ72376 B57diag CFG option 91 has reversed wording versus the NVRAM value.

Version 16.4.04 (2013.12.27)    
    Problems:
    -----------
    1. Problem (CQ72111)
         Showing incorrect CCM version.
       Fix:
         Use string instead of character to display in printf().

    2. Problem (CQ72119)
         To do manufacture mode will get D6 failed after running '-loopd3' iteration of 10.
       Cause:
         The tag interrupt medthod has a bug when the tag number rotate to 0 from 0xff.
       Fix:
         Use tag number always increase by one to trigger interrupt in MSI test(d6).

    Enhancement: 
    -----------
    1. CQ71846 Add hot-swap test capability to b57diag DOS version.
    
    
Version 16.4.03 (2013.11.19)
    Problems:
    -----------
    1. Problem (CQ71729)
         CFG file unable to correctly restore new option 91-AutoNeg 1G Half Duplex 
         Advertisement.
       Fix:
         Assign a correct type to fix this issue.

    Enhancement: 
    -----------
    1. CQ71804: Please add the check for otp2.05 programming for 57788 family chips.
         
Version 16.4.02 (2013.10.30)
    Problems:
    -----------
    1. Problem (CQ71437)
         5725 nictest d2 fail with manufacture program image process on OEM system.
       Cause:
         The stack address of INT mode is assigned a wrong value.
       Fix: 
         Assign a correct value to fix this issue.

    2. Problem (CQ71516)
         When use '-firmall' option to program an image, exiting b57diag lost MAC 
         address of port 3 and port 4 of 5720.
       Cause:
         The existing b57diag '-firmall' option programs an image to a device, 
         and preserve the NVRAM manufacturing info area. However, it doesn't 
         preserve the manufacture II area.
       Fix: 
         Preserve the NVRAM manufacturing II info.

    3. Problem (CQ71430)
         Unable to get the correct number with secfg 91= in b57diag.
       Fix: 
         Modify to show a correct value.
         
    Enhancement: 
    -----------
    1. CQ71459: Add Speed 10/100 LED Mode (5) in secfg option 21 for 5725 series devices.
    2. CQ71200: Please support automatically program management MAC with 
                the value of "NIC MAC+1" in manufactory mode.
		Note: 
			Added optional manufacturing mode command-line option: '-manmac+1' which will 
		use the primary MAC address, plus one, for the management controller MAC 
		address without prompting for input. This option should be used in place of 
		the '-manmac' option if desired by OEM. This option only works for TruManage-
		enabled controller and only when configured for "dedicated MAC" operation.
    3. Enhancement description of the secfg option 24.
    
Version 16.4.01 (2013.10.15)

    Enhancement: 
    -----------
    1. CQ71387: Add diag ability to control new NVM control bit
                for autoneg 1g half duplex disable option.
        Note: The new option is "91. AutoNeg 1G Half Duplex Advertisement".
        
    2. CQ71200: Please support automatically program management MAC with 
                the value of "NIC MAC+1" in manufactory mode.
                
Version 16.4.00 (2013.10.03)

    Problems:
    -----------
    1. Problem (CQ71105)
         b57diag: restore config file fail on OEM system.
       Cause:
         The TCL result of secfg size is over than 4000 bytes. 
       Fix:
         Expand the TCL result buffer size from 4000 bytes to 6000 bytes.

    2. Problem (CQ71042)     
         Default SMBus Interface management firmware configuration is using 
         1-based port numbers.
       Cause:
        Since port number correlates to the physical pins on the controller 
        to which other management components must be connected, this is a 
        critical element of hte configuration and there was no simple method 
        (e.g. menu item) to change the default-assigned port number.
       
        
   Enhancement:
    1. Add option 66. NCSI Host to BMC path in secfg menu for 5720.
    2. CQ70984: Re-imaging the NVRAM while the management firmware is running corrupts 
                the APE Event Log.
    
Version 16.2.08 (2013.8.30)

    Synchronize with B57DOS diag v16.2.08.
         
Version 16.2.07 (2013.8.20)

    Problems:
    -----------
    1. Problem (CQ70571)
         B57wdiag - Error message seen while executing NICTEST on 5725 SB patch.
       Cause:
         Error meesage was seen becuase of executing command which is not supported in SB 
         patch.
       Fix:
         Prior to executing commands diag checks if SB patch is installed .
         
    2. Problem (CQ70605)
         B57uEFIDiag: cfg file restore will get "invalid command name "port"" on an OEM system.
       Cause:
         It is lack of a '!' from TCL results when using "dump_all_scf" commands. 
       Fix:
         Add a '!' character into TCL results.
         
    3. Problem (CQ70608)
         B57uEFIDiag: cfg file restore will get "Invalid option 59 entered" on an OEM system.
       Cause:
         For 5718 and 5719 device, the 59 items of secfg is not enable. 
       Fix:
         Enable 59 items of secfg on 5718 and 5719 device.
         
         
Version 16.2.06 (2013.8.12)

    Enhancement: 
    -----------
    1. CQ70410 - Please add 4-part ID in b57diag to support link flap avoidance.

    2. Add APE thunderbolt GPIOs Test.
        - Add options under "apecpu(apetest) command" and usage as below:
	        apecpu -B<DEC> (Set APE Thunderbolt GPIO output pin 0-1)
	        apecpu -b<DEC> (Clear APE Thunderbolt GPIO output pin 0-1)
	        
Version 16.2.05 (2013.7.31)

    Problems:
    -----------
    1. Problem (CQ70255)
         b57wdiag: error seen when programming otp patch to 57787 in the manufacturing mode.
       Cause:
         After otp patch is programmed, diag will compare the otp content with the file.
         The error happens because diag uses 5762 device id for comparsion instead of 57787 device id.
       Fix:
         Use the 57787 device id for comparsion if the current device is 57787.

	2. Problem (CQ70254)
         b57wdiag v16.2.04: Failed to restore original management controller MAC address. 
       Cause:
         APE CFG header is not exist when user only program bootcode. 
       Fix:
         Add a check function to prevent it. 

         
Version 16.2.04 (2013.7.18)

    Problems:
    -----------
    1. Problem (CQ69958)
         The SMASH fw for Tcl environment variables incorrect when program as APE FwUpdate date entry.
       Fix:
         Add APE FwUpdate FW type check for skipping APE FwUpdate version.
       
    Enhancement: 
    -----------
    1. Change seprg -i option from "Do not restore SDID" to "Restore SDID".

Version 16.2.03 (2013.6.28)

    Problems:
    -----------
    1. Problem (CQ69751)
    	 CCM empty table and then dump image without command "-l0", wdg32.exe has stopped working in windows 8.
       Fix:
         Remove device id check. All device need to calc. image size while sedump without "-l0".
         
    Enhancement: 
    -----------
    1. CQ69715 - Programming 5725 master image does not preserver BMC MAC address.

    2. CQ69756 - Request to provide IBOOT_VER, CCM_VER, NCSI_VER tcl variables.

    3. CQ69813 - Add auto check of PCIe link width and link speed in -sysop mode.
    
Version 16.2.02 (2013.6.20)

    Problems: 
    -----------
    1. Problem 
         The b57diag-uefi application size is bigger than before.(~27MB)
       Fix:
         Update EFI toolkit to fix this issue.

Version 16.2.01 (2013.6.18)
    
    Problems: 
    -----------
    1. Problem (CQ69121)
         b57wdiag - selfboot patch: Please remove card reader related options (J & K) in Secfg on 5725.
       Fix:
         Remove card reader related options on 5725.
         
    2. Problem(CQ69123):
         b57wdiag v16.0.14 - selfboot patch: b57wdiag config file is not correctly generated for 5725 B0.
       Cause:
         Missing option m in the dump_all_cfg config file.
       Fix: 
         Add option m when dump_all_cfg file.

    3. Problem(CQ69164):
         b57diag is unable to program extened VPD when the binary length exceeds 80 bytes spcified in vpd txt file
       Cause:
         Assign an incorrect size to memcpy function. 
       Fix:
         Increase the maximum read line size to 512.
         
    4. Problem(CQ69513):
    	  nictest failes at G8 and device unaccessible after the failure.
    	Cause:
          It do not need to restore previous saved CPMU power mode setting when running nictest.
        Fix:
    	  Disable to restore previous saved CPMU power mode setting.
         
Version 16.2.00 (2013.06.03)
    
    Problems: 
    -----------
    1. Problem (CQ69099)
         b57wdiag- 57767 NICTEST test failed at F5 after programming BC to empty NVRAM by manufacturing mode.
       Cause:
         Default romcode powers down the APE memory and slowing down the APE clock to save power. 
       Fix:
         Restore APE clock to full speed in F5 test.
         
    2. Problem(CQ69045):
         b57diag: CFG file not generated correctly.
       Fix: 
         Fix dump_all_cfg function which generates wrong option 21 value.

    3. Problem(CQ68517):
         b57wdiag stop working while programming a specific image w/ CCM included
       Cause:
         Assign an incorrect size to memcpy function. 
       Fix:
         Reassign a correct size into memcpy function.
                 
    4. Problem(CQ68727):
         b57wdiag v16.0.11: The Application Error 1000 popping up when running nictest stress.
       Cause:
		 Assign an error variable size on 64bit OS.
       Fix:
         Reassign a correct variable size.
         
    5. Problem(CQ68729):
         b57wdg32 stop working while dumping NVRAM which has CCM programmed.
       Cause:
         Assign an incorrect size to memcpy function. 
       Fix:
         Reassign a correct size into memcpy function.
         
    6. Problem(CQ69018):
         b57wdiag: NICTEST failed at C5 VPD Test with 57787 B0 OTP.
       Cause:
         VPD_Test is not suitable for OTP board. 
       Fix:
         Create a check_vpd_info function that compare vpd channel data with static strings. 
         
        
    7. Problem(CQ68464):
         b57uEFIDiag: The option -run "<cmd> [option]"  to run a single command with its options in the manufacturing mode not work.
       Cause:
         UEFI shell Must use ^ as surround argument are not stripped.
       Fix:
         Use ^" instead of ".

    Enhancement: 
    -----------
    1. CQ68539 - B57uEFIDiag: Please add SMASH firmware for "Tcl environment variables".
    
         
Version 16.0.14 (2013.4.30)
    Problems: 
    -----------
    1. Problem(CQ68927):
         Exit b57uefidiag will get error message after export mem, reg contents to file.
       Cause:
         Excessive enable/diable EN_HOST_DIAG_PORT bit in the process of reading
         APE CPU scratchpad.
       Fix: 
         Remove excessive enable/disable EN_HOST_DIAG_PORT bit in the process of reading
         APE CPU scratchpad.
         
    2. Problem(CQ68716):
         B57uEFIDiag: AD SID does not display correct string in EFI diag.
       Cause:
         Current C library does not support %I64u specifier.
       Fix: 
         Update the C library to support %I64u format.
         
Version 16.0.13 (2013.4.29)
    Problems: 
    -----------
    1. Problem(CQ68165):
         Execute apeinfo with some options will cause system hanged.
       Cause:
         Use fssek to write at middle of new file after fopen in UEFI environment has 
         problem.
       Fix: 
         Use fseek only after something has been written to the file.
         
Version 16.0.12 (2013.4.23)
    Problems: 
    -----------
    1. Problem (CQ68457)
         B57uEFIDiag: The command "b57diag64.efi -unprovman" or "b57diag64.efi -getmanprov" in 
         the manufacturing mode not work..
       Fix:
         Add -unprovman and -getmanprov command in UEFI diag.
         
    2. Problem(CQ68716):
         B57uEFIDiag: AD SID does not display correct string in EFI diag.
       Fix: 
         Display the correct SID string in UEFI diag.
         
    3. Problem(CQ68165):
         Execute apeinfo with some options will cause system hanged.
       Cause:
         Some apeinfo structure was written for embedded environment which is not suitable
         in UEFI.
       Fix: 
         Adjust those structures to work in UEFI environment.
         
Version 16.0.11 (2013.4.08)
    Problems: 
    -----------
    1. Problem (CQ68457)
         b57diag user guide: Please update "seprg" section.
       Fix:
         Update "seprg" section of the user guide accordingly.
         
    2. Problem(CQ68483):
         b57diag: Please remove option 91 & 92 in SECFG on 5725/5727.
       Fix: 
         Check the ape shared mem to see ape_seg signature is valid or not, before executing the option.
         If the signature is invalid, the default "apeinfo" without option will be executed.
         
    3. Problem(CQ68592):
         Nictest fails with low density EEPROM
       Cause:
         Diag is waiting for valid APE signature to turn off APE.
       Fix: 
         Do not need to wait for valid APE signature if no ape firmware present.         
         
    4. Problem(CQ68465):
         b57diag : 5725-B0-kcs command not working.
       Cause:
         The changes in 16.0.10 incorrectly make kcs command not functioning.
       Fix: 
         Correct the changes made in 16.0.10.         
         
    5. Problem(CQ68467):
         b57diag: Restore config is not work properly.
       Cause:
         Invalid secfg menu format was used.
       Fix: 
         Update the secfg menu options format.
         
    6. Problem(CQ68481):
         [5762:M25PE20]:Fails to program bc in manual strapping mode.
       Fix: 
         Add code to identify STM25PE20 in B0 correctly.
         
    7. Problem(CQ68485):
         5727-B0-Same System sender/responder test failed.
       Fix: 
         Increase the frequency to enter interrupt routine to hanlde
         received packets.
         
Version 16.0.10 (2013.3.22)    
    Problems: 
    -----------
    1. Problem(CQ68165):
         Execute apeinfo with some options will cause system hanged.
       Cause:
         Ape shared memory region is not initialized yet, the options make diag to get invalid data.
       Fix: 
         Check the ape shared mem to see ape_seg signature is valid or not, before executing the option.
         If the signature is invalid, the default "apeinfo" without option will be executed.

    2. Problem(CQ68318):
         DosDiag not support to program ASF for 57766.
       Cause:
         The change in 16.0.06 has incorrectly excluded 57766 from ASF capable device list.
       Fix:
         Add 57766 back to ASF device support list.
         
    3. Problem(CQ68254):
         5762-B0-Change to device 1(SD CR) will display "OTP Read failed--Throw away this part".
       Cause:
         The change in 16.0.06 has incorrectly excluded 57766 from ASF capable device list.
       Fix:
         Add 57766 back to ASF device support list.
         
    4. Problem(CQ68304):
         5725B0: dos diag does not have option to configure the device to Gen 1.
       Fix:
         Add option 84 to configure the device to Gen 1
     
    5. Problem(CQ68409):
         b57diag: 5725-B0- nictest no response when program bootcode in empty NVRAM.
       Cause:
         Diag is waiting for valid APE signature to turn off APE.
       Fix:
         Do not need to wait for valid APE signature if no ape firmware present.
         
    6. Problem(CQ68230):
         AT45DB021D in manual strapping showing the capacity as 32kB.
       Cause:
         AT45DB021D in manual strapping was not supported in the previous version.
       Fix:
         Add AT45DB021D manual strapping mode support.
         
    7. Problem(CQ68163):
         B57uEFIDiag: "mancfg" commands contents are not written to log file.
       Fix:
         Write the contents to log file.

    8. Problem(CQ68231):
         B57uEFIDiag:"kcs" all command not working.
       Cause:
         "kcs" function was not supported in the uefi diag.
       Fix:
         Add "kcs" support in uefi diag.
    
    9. Problem(CQ68311):
         B57uEFIDiag:uart" all command not working.
       Cause:
         "uart" function was not supported in the uefi diag.
       Fix:
         Add "uart" support in uefi diag.

Version 16.0.09 (2013.3.11)
    
    Problems: 
    -----------
    1. Problem(CQ68083):
         Changing FoD option(option#88) to disable ports in secfg, B57diag cannot exit normally.
       Cause:
         Accessing disabled port's register.
       Fix: 
         Check if the port is still alive before access those port's registers.
         
    2. Problem(CQ68106):
        b57diag: running nictest will keep at A3.Interrupt Test when SMASH enabled.
       Cause:
         KCS was assigned IRQ 0.
       Fix: 
         Do not take over IRQ 0.
         
    3. Problem(CQ68118):
         Nictest d3 fail is seen on OEM system.
       Cause:
         Clock speed was written to lower speed.
       Fix: 
         Enable full speed in d3 test.
         
    4. Problem(CQ68201):
         b57diag: 5725-B0-Same System sender/responder test failed.
       Cause:
         Clock speed was written to lower speed.
       Fix: 
         Enable full speed in d3 test.
         
    5. Problem(CQ68195):
         5727-B0-Bring up MAC driver in b57diag will get 5725 EEE phy Rev#0.
       Fix: 
         Correct the typo.
         
    6. Problem(CQ68163):
         B57uEFIDiag: "mancfg" commands contents are not written to log file.
       Fix: 
         Write the contents to log file.
         
Version 16.0.08 (2013.3.04)
    
    Problems: 
    -----------
    1. Problem(CQ68012):
         5725:generating master nvram image causes checksum error.
       Cause:
         Diag freed the wrong pointer when inbuf argument was non-NULL.
       Fix: 
         Free the correct pointer.
         
    2. Problem(CQ67835):
        The macaddr.txt has been changed then caused manufacture program image fail.
       Cause:
         MAC address was not updated by diag in the macaddr.txt file.
       Fix: 
         Update the MAC address in the macaddr.txt file.
         
    3. Problem(CQ67574):
         Run the nictest G group will power down the system.
       Cause:
         APE test bin code writing GPIO pins causing system power down.
       Fix: 
         Update APE bin code which does not write GPIO pins.
         
    4. Problem(CQ67698):
         The TPH should not have the selection for 'reserved'. Please remove 'reserved' 
         from this feature.
       Fix: 
         Remove the 'reserved' option.
         
Version 16.0.07 (2013.2.25)
    
    Problems: 
    -----------
    1. Problem:
         Unable to program Extended VPD to blank NVRAM.
       Cause:
         Diag was checking for specific SVID which does not exist in blank NVRAM.
       Fix: 
         Added "-vpdoem" parameter when programming extended VPD.
         
    2. Problem(CQ67698):
         b57diag v16.0.5 - The TPH should not have the selection for 'reserved'. 
         Please remove 'reserved' from this feature.
       Fix: 
         Remove the 'reserved' option.
         
    Enhancement: 
    -----------
    1. Add support for reading serial numbers from a file when programming extended VPD
       using the parameter "-fsn".

Version 16.0.06 (2013.2.04)
    
    Problems: 
    -----------
    1. Problem (CQ67440)
        b57diag -fmac option updates the MAC address even when it should not.
       Cause:
         Diag increments the mac address after mac address is programmed sucessfully.
       Fix: 
         To decrease the mac address if any tests fails.
         
    2. Problem (CQ67573)
        The nictest D2 fails in b57diag manufacturing mode on OEM system.
       Cause:
         Clock speed was overriden to lower speed.
       Fix: 
         Make sure clock run at the highest speed in D2 test.
         
    Enhancement: 
    -----------
    1. Add -manmac option which may be used to prompt the user to enter (or scan in via bar code scanner) 
       the management controller's MAC address.
    2. Enhance -fmac option to support the allocation and assignment a MAC address to the management 
       controller from the range of MAC addresses specified in the file.
    3. Update 5727 Bond Id value.

Version 16.0.05 (2013.1.25)
    
    Problems: 
    -----------
    1. Problem (CQ67093)
         b57diag : 5725 FPGA B0- 57787-sb: Incorrect sb version.         
      Fix: 
         Display the correct sb version.
         
    2. Problem (CQ67094)
         b57diag : 5725 FPGA B0- The chip Rev of card reader still A0.
       Fix: 
         Display the B0 rev for card reader device in FPGA B0 version.
         
    3. Problem (CQ67095)
         b57diag : 5725 FPGA B0- 5762 OTP: Using manufacture  command to program dump image, 
         it show " The current strapping is for EEPROM/FLASH. Please use the correct selfboot image"
       Cause:
         5725 B0 has new nvram strapping value.
       Fix: 
         Update diag to support new 5725 B0 nvram strapping value.    
         
    4. Problem (CQ67235)
         b57diag: 5718-B0-Bring up MAC driver in b57diag will get 5717 EEE phy Rev#0.
       Fix:
         Display 5718 EEE phy for 5718 device.
    
    5. Problem (CQ67096)
         5725 FPGA B0- Using upgfrm -b to upgrade same otp patch, it show "Invalid Magic Value"
       Cause:
         B0 has newer otp mode strapping value.
       Fix: 
         Update the otp mode strapping value.
    
    6. Problem (CQ67273)
         b57diag: 5762-B0 : Running nictest no respone with otp patch.
       Cause:
         Diag waiting for valid APE signature to turn off APE.
       Fix:
         Do not wait for valid APE signature in otp patch mode.
         
    Enhancement: 
    -----------
    1. CQ67259 - 5717-B0: Please remove "link idle mode" entry on future b57diag release.
    2. CQ67389 - PCIe Tx de-emphasis for Gen2.
    
Version 16.0.04 (2013.1.02)
    
    1. Problem (CQ67084)
         B57uEFIDiag: Running "nictest" did not respond when mgmt fw was not enabled.         
       Cause:
         Diag was waiting for mgmt fw.
       Fix: 
         Do not wait for mgmt fw signature if mgmt was not enabled.
         
    2. Problem (CQ67088)
         Sb patch to do firmware upgrading and downgrading will pop up "Error: Invalid Magic Value".
       Cause:
         Diag to check bootcode signature on sb patch firmware upgrade.
       Fix: 
         Do not check for boot signature on sb path image.
         
    3. Problem (CQ67096)
         5725 FPGA B0- Using upgfrm -b to upgrade same otp patch, it show "Invalid Magic Value"
       Cause:
         Diag to check bootcode signature on otp patch firmware upgrade.
       Fix: 
         Do not check for boot signature on otp path image.
         
    4. Problem (CQ67069)
         Fail to program mgmt fw with blank NVRAM on 5725 family.         
       Fix: 
         Allow blank NVRAM to program mgmt fw if chip is fw capable.
    
    5. Problem (CQ67085)
         b57diag: 57787 nictest F5 fail with OTP patch. 
       Cause:
         APE scratchpad access was turn off by otp patch        
       Fix: 
         Enable APE scratchpad access during nictest.    

Version 16.0.03 (2012.12.20)

   Problems: 
   -----------
    1. Problem (CQ66888)   	 
         MX25L3206E is recognized as MX25L1606E.
       Fix:
         Add code to identify 32Mbits and 16Mbits part.
         
    2. Problem (CQ66889)   	 
         AT45DB321D is recognized as AT45DB161D.
       Fix:
         Add code to identify 32Mbits and 16Mbits part.

    3. Problem (CQ66734)   	 
         Running nictest with manufacturing mode will failure at G2.       
       Fix:
       	 Sotp management firmware from running at the beginng of test.

    4. Problem (CQ66944)   	 
         Error message "ROM load failed to load bootcode, status = 0" while reset chip.
       Fix:
         Added code to handle 57101 reset chip.

	  5. Problem (CQ66977)   	 
          EEPROM fails to program fw with CR only sku.
       Fix:
          Enable CR only sku to program eeprom.


   Enhancement 
   -----------
    1. CQ66975 - Make "Link flap avoidance" and "1Gbs link in Vaux" option available for all 
       SVID/SSID in B57diag.

    2. CQ66733 - Please add program extended VPD for 5725 server NICs.    
    
Version 16.0.02 (2012.12.06)

   Problems: 
   -----------
    1. Problem (CQ66178)   	 
         Unable to have correct value with "secfg [option number]=" query.
       Fix:
         Return true query value.

    2. Problem (CQ66732)   	 
         57787-OTP: If option a is configured 'full' caused option 8/9 unable
         to change
       Fix:
       	 Make option 8/9 configurable.

    3. Problem (CQ66432)   	 
         b57diag is unable to identify 57101.
       Fix:
         added criteria to identify 57101

	4. Problem (CQ66712)   	 
          Running nictest will get failure at A5. PCI Cfg Register Test on 
          OEM system.
       Fix:
          remove unused register


   Enhancement 
   -----------
    1. CQ65226 - Verify bootcode digital signatures before programming to 
       NVRAM, this checking is for 5762/5725/57767/57787/57764/57101/5727
       devices only.

    2. CQ66776 - Please correct the naming of 5718 production Nic with ATMEL 
       2Mbits E parts NVRAM

    3. CQ66777 -  5725-Please remove additional item4 of secfg option 7

       
Version 16.0.01 (2012.11.26)

   Problems: 
   -----------
    1. Problem (CQ66524)   	 
         b57diag: 57787-OTP: Cange option P-SD mode and save it will display 
         "OTP can not be program enabled 0".
       Cause:
         To write otp bit which is already 1.
       Fix:
         Only update the otp bit if it is 0.
         
    2. Problem (CQ66640)   	 
         B57uEFIDiag:sedump file length incorrectly.
       Cause:
         Missing some of the image length when doing the calculation.
       Fix:
         To include the missing image length. 	 
         
    3. Problem (CQ66497)   	 
         b57diag: Logan-57787 nictest c5 fail with OTP patch.
       Fix:
         Omit VPD testing in OTP mode. 
         
    4. Problem (CQ66646)   	 
         B57uEFIDiag: v16.0.00 not support 5725 series devices.
       Fix:
         Add 5725 sereise devices support in the UFEI diag.
         
Version 16.0.00 (2012.11.21)
    
   Enhancement 
   -----------
    1. Support 5762/5725/57767/57787/57764/57101/5727 device family.
    
    2. CQ66422: UEFI diag enhancement request from customer, add system 
       IO access ability to test low power mode.
       Fix:  option '-O' is added to command 'read' and 'write' to access
       system IO.       
    
Version 15.6.03 (2012.11.07)
    
   Problems: 
   -----------
    1. Problem (CQ66374)   	 
         b57diag nictest A5 test hang the system in manufacturing mode.
       Cause:
         Power management registers was tested causing system hang.
       Fix:
         Remove testing power management registers.
   	   	 
   Enhancement 
   -----------
    1. Update on secfg item 89 to reflect the FoD design change.
   	   	 
Version 15.6.02 (2012.11.02)
    
   Problems: 
   -----------
   	1. Problem (CQ66238)   	 
   	     b57diag fails to program 57786x A1 otp in manufatcuring mode.
   	   Cause:
   	     Using the wrong major version for 57786 device when diag makes comparion.
   	   Fix:
   	   	 Use the correct otp version for comparison.
   	   	 
   	2. Problem (CQ66294)   	 
   	     The sedump command writes wrong Device ID 0 for 57786x otp.
   	   Cause:
   	     Use the wrong DID for 57786 device.
   	   Fix:
   	   	 Use correct 57786 device ID when sedump image file.
   	
   	3. Problem (CQ66177)
   	     B57diag v15.6.01- Unable to have correct value with "secfg [option number]=" query.
   	   Fix:
   	     Return correct query value.  	  
   	   	 
   	Enhancement 
   -----------
    1. Add support for 5717C0 new DID.
    2. CQ66072 Need to delete standalone CCM binary if MBA is programmed with built-in CCM.
    3. CQ66100 Provide the secfg option to config FoD for 5719/5720 for OEM.

Version 15.6.01 (2012.10.16)
    
   Problems: 
   -----------
   	1. Problem (CQ65564)
   	     UEFI b57diag cannot recognize the device if the device ID and/
   	     or Vendor ID get corrupted. option 'seldev' doesn't work. 
   	   Cause: 
   	     existing UEFI diag only scan PCI bus to find the devices that 
   	     has known device ID. 
   	   Fix: 
   	     if the option 'seldev' has value, find the device with vid/did
   	     specified in 'seldev'. 

   	2. Problem (CQ65660)   	 
   	     Using the 'ivpdprg' command in a script causes error "invalid 
   	     command line" and does not to run.
   	   Cause:
   	     The 'ivpdprg' command is not supported in TCL environment.
   	   Fix:
   	   	 Create 'ivpdprg' command in TCL.


Version 15.6.0 (2012.09.11)
    
   Problems: 
   -----------
   	1. Problem (CQ65506)
         b57diag: 5717C0-Bring up MAC driver in b57diag will get incorrect 
         EEE phy Rev(5720).         
       Fix: 
         Display the right EEE phy rev.
         
Version 15.4.11 (2012.09.07)
      
   Problems: 
   -----------
   	1. Problem (CQ65441)
         5717_C0 nictest D5 failed.         
       Cause:
         PHY register setting was changed by managemnt firmware.
       Fix: 
         Disable managment firmware while running nictest D5.
         
    2. Problem (CQ65477)
         B57uEFIDiag:The LED always get 100M when command line option 
         include the '-chkled' with NCSI fw enabled.         
       Cause:
         PHY register setting was changed by managemnt firmware.
       Fix: 
         Disable managment firmware while running nictest.
    
Version 15.4.09 (2012.09.05)
      
   Enhancement 
   -----------
    1. CQ65000
        Enhancement request to log invalid and valid SN input string 
        in the test log.
    2. Removed C1 test if 'sysop' option is specified.

        
Version 15.4.08 (2012.07.30)
    
   Problems: 
   -----------
   	1. Problem: 
        run seprg o57788c2.07?after seprg o57788c2.05report Checking
        selfbootII OTP Content ?:  invalid? 
       Cause:     
        the new patch size exceed the OTP size.  Previous b57diags 
        reported no error if the new patch exceed the OTP max size, but 
        it did NOT program the data that exceed the max size.  Thus 
        caused an unfinished programming and failure checking.
       Fix:         
        Improve b57diag to check available OTP space and report error 
        ?!! ERROR, OTP space is not big enough?if the space is insufficient.
        The programming is also stopped so that the OTP is not messed up 
        with an unfinished patch.

   Enhancement 
   -----------
    1. CQ64556
        Remove all A1 silence mode support for 57788, no more SW OTP. All OTP
        data that is displayed, written and read,  are from OTP memory directly.   
    2. CQ64560
        During OTP write procedures, enhance current code to write/read/compare
        each DW up to three times if the read back value is not equal the 
        written value.  Report error and exit b57diag if they don't match
        after 3 times.


Version 15.4.07 (2012.07.20)
    
   Problems: 
   -----------
    1. Problem (CQ64627)
         b57diag: Please remove the TPH in secfg menu on 5718.
       Fix: 
         Remove TPH in 5718.
         
    2. Problem (CQ64562)
         PXE: customized DID combined pxe can't be programmed to correct 
         device.
       Fix: 
         Remove unnecessary message when vendor and device id are the same
         when programming PXE image since no update is required.
         
    3. Problem (CQ64642)
         With '-sn' option specified in command line, "pattern" substring 
         field doesn't work as expected.  B57diag only checks for SN to be
         22 characters long, but failed to verify the beginning chars.
       Cause:
       	 Existing b57diag only fails when all pattern didn't match.
       Fix:
         if any pattern doesn't match, b57diag fail the string.       	 
    
   Enhancement 
   -----------
    1. Update CQ64126 Secfg option 60 disappear on 5719/5720 fiber.       
    2. CQ64642:
    	a. Please allow only numeric, 0-9, and uppercase letters, A-Z to be
    	string that gets input from -sn command line option. 
    	b. support 3 SN pattern, each has larger length.  Previous b57diag 
    	support 2 SN patterns, each one has length of 6.
    	c. support 3 OUI pattern.  Previous b57diag support 2 OUI patterns.


Version 15.4.06 (2012.07.12)
    
   Problems: 
   -----------
    1. Problem (CQ64126)
         Secfg option 60 disappear on 5719/5720 fiber.
       Cause:
         Too many options printing out at once.
       Fix: 
         Add a Press any key to continue message between options.
         
    2. Problem (CQ64191)
         To reset 5715NIC then it will show "Firmware timout 0 OK".
       Fix: 
         To restore prior reset setting.
         
    3. Problem (CQ64331)
         5718 displayed Cannot gain access to flash, SwArbit: 3100 after 
         programming dumped image and reset both ports.
       Cause:
         Besides the primary port, the secondary port needs to reload new fw. 
       Fix: 
         Add code to let seconday port reload the new fw code. 
         
   Enhancement 
   -----------
    1. Add TPH feature in secfg menu. 
    2. CQ64530 57766 Family-Please remove EEE option with selfboot patch.
    
Version 15.4.05 (2012.06.18)
    
   Enhancement 
   -----------
    1. Cq63932, enhancement request
         To enable/disable Alternate PME Suppression for 57761 and 57762.
       Fix: 
         add secfg option 83 to config NVRAM offset 0x78[31] as Alternate
         PME Suppression for 57761 and 57762. 

    2. Add 5717c0 support.
    
   
Version 15.4.04 (2012.06.13)
    
   Problems:
   ---------
    1. Problem (CQ63399)
          Please deny programing iscsiboot with iscsiprg -e command on 
          57786x bootcode.
       Fix:
          Implement fix as requested.
          
    2. Problem (CQ63400)
          Please deny to setman/setasf -e/-d on 57782/57786x boot code.
       Fix:
          Implement fix as requested.
          
   3. Problem (CQ63912)
          B57uEFIDiag: The log/nolog for time and date always show 
          "Thu Jan 1 00:00:xx 1970".
       Fix:
          Use the real systime when invoking log/nolog command.
          
Version 15.4.03 (2012.05.18)
    
   Problems:
   ---------
    1. Problem (CQ63012)
         TCL Environment Variables for "[dir]" command will returned bad
         code: 178 with SelfBoot Patch.
       Fix:
         Diag only print outs error messages instead of return TCL status
         code.

    2. Problem (CQ63361)
         Command 'apelog' was not supported in UEFI diag.
       Fix:
         Add 'apelog' command into UEFI diag.

   Enhancement 
   -----------
    1. CQ63331 - Add F1 character as an alternate way to terminate the
       'ledblink' command in B57diag.

         
Version 15.4.02 (2012.05.08)

    1. Problem (CQ62327)
         Failed to program NCSI fw after running FLR test.
       Cause:
         MiscHostCtrl register(0x68) was cleared after issuing an FLR so that
         Indirect access was disabled. 
       Fix:
         Setup MiscHostCtrl register again after an FLR.

    2. Problem (CQ62356)
         FLR test failed on OEM systems.
       Cause:
         According to PCIe spec and simulation, there must be at least 100ms
         delay before checking the completion of FLR.
       Fix:
         Add 100ms delay before checking the FLR result.

    3. Problem (CQ62497)
         With specific customer OTP image, the xD/MS functions are disabled, 
         but related secfg config items are still seen.
       Fix:
         Hide xD/MS related config if 0x3600 shows that function 2/3 are hidden; 

    4. Problem (CQ63011)
         TCL Environment Variables $::nx1(WOL) not work with SelfBoot Patch.
       Cause:
         This is a code problem.
       Fix:
         Update code to get the configuration and set TCL variables correctly.

    5. Problem (CQ62750) 
         Fail to program NCSI FW with blank NVRAM on some NICs. Error 
         message "Invalid ASF file format!" is displayed after program BC 
         and NCSI FW.
       Cause:
         Existing b57diag rely on HW config in shared memory 0xb58 to detect
         if the APE present.  If APE present, b57diag program APE FW, otherwise
         b57diag program ASF FW.  If the NVRAM content is invalid, shared 
         memory is not set by BC so that the 0xb58 value is random;  meaning,
         some boards have ape present bit set, some board have ape present bit
         cleared.

         If the ape present bit is cleared, b57diag try to program ASF FW, but 
         failed because of the format.  If there is a 'reset', the BC kick in
         and set the bit correctly.
       Fix:
         new version check shared memory signature, if it is valid, use 0xb58
         ape present bit; if the signature is invalid, return APE present if
         the device is 5761/5718/5719/5720.

    6. Problem:
         Integrate change from v15.21b: A few 5719 NVRAM get corrupted after 
         entering b57diag engineering mode. 
       Cause:
         During NVRAM writing, if the system out of power or the power dropped
         below some voltage, the write operation cannot be finished correctly. 
         Random data may be wrote to the NVRAM. 
       Fix: 
         If 5718/5719 has 2M pin strap, previous b57diag get the NVRAM size 
         by writing to some locations. It wrote to NVRAM 4 times if the chip 
         is 5719. the workaround is to avoid the NVRAM writing if the NVRAM
         0xf2 has valid data.  if the NVRAM 0xf2 is zero or 0xffff, write to 
         NVRAM once to get the NVRAM size. 

    7. Problem:
         Fixed the problem that OEM VPD CRC calculation is incorrect.
       Cause:
         Previous version did exclude byte 2 and 3.
       Fix:
         Exclude byt2 and byte 3 and reduce the VPD data length go get the 
         correct CRC. 


    Application note:
    -----------------
      VMAC is implemented after version 15.4.00.  Previous b57diag read NVRAM
      address when running 'device' command; starting from v15.4.00, b57diag 
      check register 0x410 first.  If user change NVRAM MAC via secfg command,
      MAC address might not get updated via 'dev' command.  User need to reset
      the chip after 'secfg' to have the change take effect immediately. 


   Enhancement 
   -----------
	 1. CQ62895, add SGMII support to 5718/5719/5720
	 
	    Two NVRAM control bits per port are defined in Extended Configuration 
	    (nvram offset 0x278, 0x27c, 0x280 and 0x284).	
	      Bit 13: It's used to enable/disable SGMII Mode
	        0b: SGMII Mode Disable; 
	        1b: SGMII Mode Enable.
	      Bit 14: It's used to select SGMII link is forced or auto negotiated: 
	        0b: Auto negotiated; 
	        1b: Forced.	

	    'secfg' option 85 and 86 are added to config SGMII.  
	        85. SGMII {Disable(0), Enable(1)}
	        86. SGMII Force Link {Disable(0), Enable(1)}

	    With these configuration, every time PHY get reset, b57diag set PHY 
	    register 0x10[4](autodet_en) to ~NVRAM bit 14 SGMII_Force_Link_En; 
	    set 0x10[0](SGMII_MODE) to ~NVRAM bit 13 SGMII_En.

	2. Add command option 'nvsize -f' to force b57diag get the NVRAM size by
	   writing to NVRAM. the command only applies to 5718/5719.

	3. CQ62834, Enhancement is needed for b57diag to calculate OEM UUID in 
	   VPD block 0 and then calculate the new CRC for block 0.  MAC address 
	   needs to be read from board and put at location 0x640 as before. 

	   Algorithm to generate UUID is added.

	   
    
Version 15.4.01 (2012.04.01)

   Problems:
   ---------
    1. Problem (CQ62339)
         b57diag overwriting BDA when executing with '-l' (log) option. 
       Cause:
         scrn.buffer is not initialized in scrn_init() before it was used
         hence corrupting BDA region.  
       Fix:
         Initialize scrn.buffer before printing out characters.

    2. fixed the problem that OTP version is not correctly displayed for
       57785/57765/57795/57761/57781/57791 B0.

   Enhancements:
   -------------
    1. Add 57766/57762/57786/57782 A1 support.
       
       
Version 15.4.00 (2012.03.26)

   Problems:
   ---------
    1. Problem (CQ61999)
         Incorrect value "0" returned after typing secfg c=?twice.
       Cause:
         B57diag takes the value of zero when "secfg c=" is entered.  
       Fix:
         Report back the correct value when "secfg c=" is entered.
         
    2. Problem (CQ61951)
         On customer blade server, the b57diag shows the NVRAM macs instead of 
         vmacs on the device list.
       Cause:
         This was as designed.  b57diag used to read MAC address from NVRAM.
       Fix:
         Check VMAC first.  If it is non zero, display VMAC. Otherwise, display
         the MAC address from NVRAM.

         
   Enhancements:
   -------------
   1. Added "mancfg -N" option to disable the notification of the firmware 
      of any configuration changes. For use with provisioning of private 
      key before SSL certificate.
   2. Added support for ASIC_REV_57786.
   3. Added functions to get major OTP image version: 
   		a. version 1.xx is for Aspen+;
   		b. version 2.xx is for Aspen+ A1; 
   		c. version 3.xx is for Aspen C0;
   		d. version 4.xx is for Aspen C1;
   4. Starting from this release, b57diag will use 3 digit version scheme
      such as 15.4.xx instead of previous two digits scheme.

      
Version 15.30 (2012.03.02)

   Problems:
   ---------
    1. Problem (CQ61903)
         Error message "Cannot gain access to flash, SwArbit: 3100" is seen
         after C4 test and before D group test.
       Cause:
         C4 is followed immediately by group D which will reset RxCPU and 
         APE again. At this time, the previous APE reset might not be completed
         and the Software Arbitration might be locked out.  
       Fix:
         Wait 500ms after APE CPU reset.
         
Version 15.29 (2012.02.29)

   Enhancements:
   -------------
   1. CQ61870      
      Customer is requesting b57diag doing multiple D3 (external loopback) test
      in addition to default iteration of 1. Option '-loopd3' is added to server
      this purpose.  Also '-loopd3' command line parameter is independent of 
      '-chkled' command line parameter, it will only request the operator to 
      verify the LED color once at default iteration.  

   2. CQ61845
      Added support for programming ARP Batch firmware, 'seprg -B';
      The current way of programming the ARP Batch firmware to the NVRAM 
      was to use the ASF firmware method which require 4 directory entries. 
      The ARP Batch firmware only require one directory entry. 

   
Version 15.28 (2012.02.24)

   Problems:
   ---------
    1. Problem (CQ61723)
         If via "secfg" and select item 7.Subsystem Device ID (0,1) to change, it will
         show up "No parameter entered".
       Cause:
         Implementing enhancement CQ61588 causing this failure.
       Fix:
         Roll back the changes made in CQ61588.              

    2. Problem (CQ61754)
         cfg file restore will get  "Invalid parameter entered" failure.
       Cause:
         Implementing enhancement CQ61588 causing this failure.
       Fix:
         Roll back the changes made in CQ61588.  

    3. Problem (CQ61759)
         nictest d3 would failed with same system sender/responder test on OEM system.
       Cause:
         EEE mode is not disabled during the sender/responder test.
       Fix:
         Disable EEE mode during the sender/responder test. 

    4. This version is synchronized with B57diag V15.31.
         
Version 15.27 (2012.02.22)

   Enhancements:
   -------------
    1. CQ61588 - Please deny out of range/invalid input in secfg with 
                 5718/5719/5720. 
    2. This version is synchronized with B57diag V15.30.
   	    
Version 15.26 (2012.02.14)

   1. Problem (CQ61537)
        SB_Patch cfg file restore incorrectly at item g. Cable Sense.
      Cause:    
   	    Diag took the compliment value of item g when restoring cfg file.
   	  Fix:
   	    Restore the item g value as it was in the cfg file.
   	   
Version 15.25 (2012.02.06)

   1. Problem (CQ61385)
        It failure at "C4. MII Test" on B5719 when B5719 Adapter and B5720 Adapter co-exist.
      Cause:    
   	    Management firmware changes registers value during MII registers read/write test.
   	  Fix:
   	    Disable management firmware during C4 MII register test.
    
Version 15.24 (2012.01.19)

   1. Problem (CQ60990)
         Leagcy bootcode without iscsi fw mba config boot protocol missing "None" field.
      Fix:
         Add the "None" field for Legacy bootcode without iscsi fw.
         
   2. Problem (CQ60992)
         57766 should remove the MS SDID.
      Fix:
         Remove MS SDID in secfg menu for 57766.
         
   3. Problem (CQ61006)
         Cfg file restore incorrectly at item SDID (Item 7).
      Cause:
         Cfg file does not generate correct format at SDID (Item 7).
      Fix:
         Generate the correct SDID (Item 7) format.
         
   Enhancements:
   -------------
    1. CQ60936 - Please deny asf programming with 57782/57786x.
     
Version 15.23 (2012.01.04)

   Enhancements:
   -------------
     1.	Add support for 57762 family device. 
          
Version 15.22 (2011.12.13)

   Problems:
   ---------
     1. Problem: (CQ60261)
          The system will get "F3" failure when run stress test over-night 
          on an OEM system.
        Cause: 
          Heart beat timer will start counting to zero after been written. 
        Fix:
          Omit testing heart beat timer.
          
Version 15.21 (2011.12.09)

   Problems:
   ---------
     1. Problem: 
          On a customer system, register test failed on 0x170 "R/W bit 
          0,1,2,3,4,5,6,7 didn't get set after writing one"
        Cause: 
          5761 register spec says 0x170[7:0] "bit 6 of Register 7c04 needs
          to be set to a 1 to allow this parameter to be R/W. Otherwise, 
          this field is Read-Only". AE confirmed that 0x7c04[6] is cleared 
          on that system. 
        Fix:
          b57diag need to check 0x7c04[6] before test 0x170; 
          set 0x170[7:0] to R/O if 0x7c04[6] is cleared.
          
    2. Problem: (CQ57848)
          The system will auto reboot when run uefidiag stress test over-night 
          on an OEM system.
        Fix:
          Roll back to the previous version way of running the APE CPU test.

          
Version 15.20 (2011.12.02)

   Problems:
   ---------
     1. Problem: (CQ59898)
           Program image that generated from 'sedump xx.bin' gets error
           message: "2nd Boot Code    00000000 81D0797C Failed "
        Cause: 
           The error message is caused by the latest BC code size.  
           Previously, the BC size is relatively small, so b57diag use 
           default size 0x3000 Bytes if there is no '-l' specified.  
           Now, the BC is about 20K bytes, so 0x3000 is not enough.
           'sedump xx.bin' generate an image that is not complete 
           so the CRC calculation is wrong.
        Fix: 
           Increase the default size to 0x6000 (~25k).

     2. Problem: (CQ59955)
     	   FW CRCs are not checked completely when user program an image.
     	Cause:
     	   CRCs for Manufacture II block and FWs in extended directory
     	   are not checked.
     	Fix: 
     	   Add CRC check for Manufacture II block and FWs in extended 
     	   directory block when user program an image. 
      
     3. Problem: (CQ59910)
           b57diag doesn't check the syntax of MAC address input when using
           "-m - automac" command options which could end up programming an 
           invalid label as MAC address on the board. 
        Fix:
           Add syntax check of MAC address input to catch invalid entry

   Enhancements:
   -------------
     1. CQ57533: remove all hot plug related config settings and validation
                 for newer devices since we don't support it anymore.

                 
Version 15.07 (2011.11.23)

   Problems:
   ---------
     1. Problem: (CQ59877)
           When user execute command 'sedump xx.bin' , error message
           "2nd Boot Code    4200000E E1379AC1 Failed!" is seen.
        Cause:
           An incorrect checking is introduced when fix another problem.
        Fix: 
           revert the change
           
     2. Problem: (CQ59780)
           Garbage characters appended in the test log with the use of
           "-chkled" command option.
        Fix: 
           Continuous write test result to test log instead of writing
           it once when exiting b57diag.

   Enhancements:
   -------------
   1. CQ58698 - Update the logic to control APE_GPIO6 pin for ASIC#2 
                access to I2C bus on an OEM system.
   2. CQ59859 - B57diag needs to add to secfg the field "Backed Up MAC
                Address".


Version 15.06 (2011.11.17)

   Problems:
   ---------
   1. Problem:
        PXE get enabled after source a configuration file that with item 
        8(PXE) disabled. 
      Cause: 
        b57diag associate item 26 to PXE disable/enable. if item 26 (MBA 
        Boot Protocol) set to 0(PXE)-3, b57diag enable the PXE 
        automatically.

      Fix: 
        Remove the association between item 26 and PXE, now, option #8 and 
        #26 are independent of each other.
           
   2. Problem: (CQ59718)
        One customer reports nictest D1 failure issue under certain steps 
        to program NVRAM image.
      Fix:
        To perform a global chip reset after new firmware is programmed 
        due to the constraint of "not disable FASTBOOT" in 5718, 5719, 
        and 5720.

   3: Problem:
        CCM (Comprehensive Configuration Manager) image's header is not 
        stripped off when it is programmed into NVRAM.
      Fix:
        Remove 20B header and validate image signature and type before 
        programming.

   Enhancements:
   -------------
   1. Support the specific CRC algorithm and new VPD spec for the command
      'ivpdprg'.
   2. CQ59110 - Provide the access to Network SerDes adjustment parameter
      in 5718.  Defined option 79 and 80 for Network SerDes Pre-emphasis
      and TX Amplitude in secfg command.


Version 15.05 (2011.11.10)
   1. Problems:  
	    On some UEFI system, error message "assertion "tmp != NULL" failed: 
	    file "sys\open.c", line 172" is seen when user load b57diag from USB
	    drive.  If user load the b57diag from default shell, there is no 
	    problem, for example, 'shell>fs0:\b57diag64'.
	  Cause:
	    Some EFI bios has the environment size over 44K, which exceed EFI 
	    tool kit boundary 4K and cause the device mapping table created
	    incorrectly.
	  Fix:
	    Increase the MAX_ENVIRONMENT_DATA in \lib\libc\efi\env.c to 64k 
	    in EFI toolkit

   2. Enhancement:
	    Add CCM (Comprehensive Configuration Manager)  programming capability:
	    . seprg C' option to program the CCM image (It is capital C);
	    . 4 bytes CRC is appended at the end of image;
	    . Use dir?to display its version.  
	    

Version 15.04 (2011.11.03)
	Problems:
		b57diag prints debug message.
	Fix:
		remove the debug message.


Version 15.03 (2011.11.02)

   Problems
   ---------
     1. Problem: (CQ59480)
            b57diag: Unable to exit b57diag engineer mode after running 
            nictest a3.
        Fix:
            Fix the order of Tcl_deleteCommand when exiting tcl and also 
            remove infrequently used tcl command.
            
     2. Problem: (CQ59526)
            b57diag: 5717 nictest D2/D5/D6 fails with OEM system.
        Fix:
            When allocating memory size for nictest D2/D5/D6, use the 
            minimum memory requirement setting.
            
     3. Problem: (CQ59543)
            OEM reports when importing SMBIOS table in b57diag, the 
            system will stop running at Reading SMBIOS Structures.
        Fix:
            Fix memory corrupt issue when importing SMBIOS structures.

     4. Problem: (CQ59316)
            b57diag : Re-define and fix the Syntax of sedump with -f and
            -l0 command line options.
        Fix:
            Check if command syntax with option value follows immediately 
            with option.

            
   Enhancements
   ------------
     1.	Disassociate -sn and -vpd command with -sysop command.
     
     2. CQ59222
           requirement:  OEM device has two chips, each chip has different
           SDID;  When we program the image to the chip, the image with 
           specific SDID should go to specific chip.  We are using GPIO 0 to
           tell which chip is the first one.
               - Chip#1: GPIO 0 is high. 
               - Chip#2: GPIO 0 is low. 
               
    3. Display device ID 57100
           Display device ID 57100 if the device ID is Aspen Dummy ID 0x16A3.  
           Previously, b57diag displays 'dummy'.

           
Version 15.01 (2011.10.14)

   Problems
   ---------
     1. Problem: (CQ59118)
            b57diag: It takes VERY long time for updating NVRAM when running tcl script.
        Cause:
            The process of running a TCL script was hidden by mistake. So, users thought it took very long time to complete.
        Fix:
            Output the whole results of processing a TCL script.
            
     2. Problem: (CQ58873)
        b57diag: Error reading occurred when type vpdinfo command. 
      Fix: 
        Need to do a reset to every port on mulitple devices after the nictest. 

   
   Enhancements
   ------------
	 1. CQ58698 - Requirement for a tool to flash I2C VPD Serial EEPROM.
	 2. CQ59115 - Associate the usage of -sysop with -t and -T command line parameters.
	 3. CQ58527 - No warning message pop out when using "upgfrm -b" to upgrade non-bootcode file.
   4. CQ57994 - SN and MAC fields need to be entered into the VPD section of the NVRAM.

Version 15.00 (2011.08.09)
   1. Problem: (CQ57203)
        M45PE16-VMW6TG cannot be recognized correct memory size by b57diag.
      Fix:
        Add M45PE16 support in the auto-sense mode. 
        
   2. Problem: (CQ57400)
        NCSI NX1: 5720 unable to reestablish NCSI pass-through after running nictest.
      Cause:
        NCSI firmware is not run after running nictest.
      Fix:
        Restart NCSI firmware after nictest finishes.
        
   3. Problem: (relate to CQ57013) 
        After 'upgfrm -b' bootcode from a special customer image, the port3&4 
        MAC addresses and some NVRAM setting are lost. 
      Cause: 
        The power budge count is deferent between BC and image. Diag didn't 
        restore the Manufacture block II and the shared config correctly if 
        this setting is different. 
      Fix: 
        Restore the Manufacture block II and the shared config correctly. 

Version 14.76 (2011.07.25)
   1. Problem: (CQ57191)
        B57UEFIdiag:Run nictest will failed in "F4" with manufacture mode on an OEM system.   
      Fix:
        Remove fluctuating bits in F4.  
        
   2. Problem: (CQ57093)
        B57UEFIdiag:Run nictest will failed in "G8" with manufacture mode on an OEM system.  
      Fix:
        Run G8 test on each port.
        
Version 14.75 (2011.07.18)
   1. Problem: (CQ56640)
        B57UEFIdiag:5719 fiber run nictest will failed in "D2" when port connected to switch.   
      Cause:
        RBD fetch count limitation.   
      Fix:
        Reduce RBD fetch count during initialization.  
        
   2. Problem: (CQ56920)
        B57uefidiag: 5719fiber-If selects a reference device for test D3 will get failure.  
      Cause:
        RBD fetch count limitation.   
      Fix:
        Reduce RBD fetch count during initialization. 
        
   3. Problem: (CQ56922)
        B57uefidiag: 5719sb-If selects a reference device for test D3 will get failure.   
      Cause:
        RBD fetch count limitation.   
      Fix:
        Reduce RBD fetch count during initialization.
        
   4. Problem: (CQ56926)
        B57uEFIDiag: Run D3 with reference device will get failure on an OEM system.  
      Cause:
        RBD fetch count limitation.   
      Fix:
        Reduce RBD fetch count during initialization.
        
   Enhancement:
   1. Add option 77 and 78 in secfg menu for 5718 and 5719.
        
Version 14.74 (2011.07.11)
   1. Problem: (CQ56752)
        B57uEFIDiag: Run D3 with reference device will get "Exception from pro- boot UEFI environment" on an OEM system.   
      Cause:
        Buffer management in sender/responder will corrupt in optimized setting.   
      Fix:
        Use normal tx/rx setting for sender/responder case.  
        
   2. Problem: (CQ53578)
        UEFIb57diag: If selects a reference device o for test D3 will get failure on Testing Speed 1000.  
      Cause:
        Buffer management in sender/responder will corrupt in optimized setting.   
      Fix:
        Use normal tx/rx setting for sender/responder case.  
           
Version 14.73 (2011.07.05)
   1. Problem: (CQ56445)
        B57uEFIDiag: 5720-fiber run loop back test with RJ45 Loop Back connected will get failed.  
      Cause:
        Problem introduced in previous version.   
      Fix:
        Do not apply copper patch when 5720 is configured as serdes mode.  
        
   2. Problem: (CQ56508)
        Run nictest C7 will get "Exception from pro- boot UEFI environment" on OEM system. 
      Cause:
        B57diag issues memory read/write command after memory base has been set to zero in C7 test.   
      Fix:
        Using indirect memory access.  
   
   3.Problem (CQ56632)
        B57uEFIDiag: program sb firmware will reset MAC to default on port 1,2 and 3.   
     Fix:
        To restore all 4 port's mac address.    
        
   4.Problem (CQ56635)
        B57UEFIdiag:5719 sb patch run nictest will failed in "F4" with manufacture mode.   
     Cause:
        Timer register will count down to zero once initialized.   
      Fix:
        Remove testing timer register in the read write test.  
   
   
Version 14.72 (2011.06.21)
   1. Problem: (CQ56321)
        B57uefidiag- Same System Sender/Responder test fail with 5720-Fiber. 
      Cause:
        Does not consider 5720 in this case.   
      Fix:
        Remove testing 5720-Fiber mode in 10 and 100 speed.  
        
   2. Problem: (CQ56415)
        B57UEFIdiag:5719-A1 run nictest will failed in "F3" with manufacture mode.
      Cause:
        Timer register will counts down to zero once initialized.   
      Fix:
        Remove testing timer register in the read write test.  
        
   Enhancement:
   1. Resolve CQ56337 Add b57diag Command to Return ASIC Termperature.
   2. Resolve CQ56353 Need to add an option in b57diag to set MBA protocol to 'none'.    
   
Version 14.71 (2011.06.14)
   1. Problem: (CQ56167)
        B57UEFIdiag:5718 sb patch run nictest will failed in "D5" with manufacture mode. 
      Cause:
        Link Aware Power Mode is enabled.   
      Fix:
        Disable Link Aware Power Mode during D5 test.  
        
   2. Problem: (CQ56215)
        B57UEFIdiag:5718-fiber run tcl command for "MAX_SPEED" will get 2500.   
      Fix:
        Change the MAX_SPEED to 1000.  
        
   Enhancement:
   1. Remove secfg option 76(Parity Error Reset Enable).
   2. Set the PXE ROM size of all ports in 5718/5719/5720 concurrently.
   3. Do not restore SDID if NVRAM content is corrupted. 
   
Version 14.70 (2011.05.13)
   1. Problem: (CQ55119)
        UEFIb57diag: During upgrading bootcode will see incorrect bootcode version on 5720. 
      Fix:
        Display correct bootcode version on 5720.  
        
   2. Problem: (CQ55514)
        UEFIb57diag: Execute vpdinfo will get error after run vpdtest.  
      Cause:  
        It lacks a fastboot disable global reset after vpdtest.
      Fix:
        Perform a fastboot diable global reset after vpdtest.  
        
   Enhancement:
   1. Fix CQ55183 B57Diag: Version display under 'FamVer' is either from V0 or true boot code version if the manu-ID is 1028.
   2. Hide item 11-16, 31 and 32 in secfg if extended vpd exists.
   3. Fix "vpdsecfg" string too long causing display error issue. 
   
Version 14.69 (2011.05.09)
   1. Problem: (CQ54832)
        Output of some TCL's commands were not captured in a log file.
      Cause:  
        The channel to a log file was not created for TCL.
      Fix:
        Add code to create a channel for a log file.  
        
   Enhancement:
   1. Fix "vpdsecfg" string too long causing display error issue.         
        
Version 14.68 (2011.5.03)
   1. Problem (CQ55039)
        UEFIb57diag:5718 fiber run nictest will fail in "G6" with manufacture mode. 
      Fix:
        Remove excessive enable/disable APE CPU.
        
   2. Problem (CQ54872)
        UEFIb57diag:5718 run nictest will hang in "B1" with manufacture mode.  
      Fix:
        Remove excessive enable/disable APE CPU.
        
   Enhancement:
   1. Add vpdinfo support for Snaggletooth.
        
Version 14.67 (2011.4.14)
   1. Problem (CQ54666)
        B57UEFIDiag: 5718 fails F1 Indirect APE Ctrl Register Test in manufacture Mode. 
      Cause:
        Some APE registers default value will change if management firmware is loaded.
      Fix:
        Remove testing changing R/W bits that will change during test.
        
   2. Problem (CQ54667)
        B57UEFIdiag: 5718 fails D2 PHY Loopback Test. 
      Cause:
        Management firmware changes registers value during D2 test.
      Fix:
        Disable management firmware during D2 test.
        
        
Version 14.66 (2011.4.11)
   1.Problem (CQ52854)
   	   UEFIdiag: 5719 run nictest will failed in "C4" with manufacture mode. 
   	 Cause:    
   	   Management firmware changes registers value during MII registers read/write test.
   	 Fix:
   	   Disable management firmware during C4 MII register test.
   	   
   2.Problem (CQ53583)
   	   UEFIb57diag: If selects a reference device o for test D3 will get failure on Testing Speed 10. 
   	 Cause:    
   	   EMAC mode register was not set to correct speed value when management firmware enabled.
   	 Fix:
   	   Disable management firmware during reference device test.
   	   
   3.Problem (CQ53578)
   	   UEFIb57diag: If selects a reference device o for test D3 will get failure on Testing Speed 10. 
   	 Cause:    
   	   EMAC mode register was not set to correct speed value when management firmware enabled.
   	 Fix:
   	   Disable management firmware during reference device test.
   	   
   4.Problem (CQ53812)
   	   UEFIb57diag: Run reference device for test D3 will get failure on Testing Speed 10. 
   	 Cause:    
   	   EMAC mode register was not set to correct speed value when management firmware enabled.
   	 Fix:
   	   Disable management firmware during reference device test.
   	   
Version 14.65 (2011.3.24)
   1.Problem (CQ53522)
   	   UEFIdiag: Run nictest will failed in A2. Control Register Test Failed. 
   	 Cause:    
   	   Some registers offset have been changed.
   	 Fix:
   	   Apply the new registers offset.
   	   
   2.Problem (CQ53692)
   	   UEFIb57diag:The "DID" on pxe version is incorrect when program combined image- uEFI+ PXE. 
   	 Cause:    
   	   Diag does not access the correct location in nvram to display pxe version if programmed combined
   	   image-uEFI+PXE image.
   	 Fix:
   	   Access the correct address in nvram to display pxe version.
   	   
   3.Problem (CQ52774)
   	   B57diag UEFI version locks up on IBM system. 
   	 Cause:
   	   Use memory base access to read DeviceId causes system lock up.
   	 Fix:    
   	   Use PCI configuration to read deviceId.
   	        
Version 14.64 (2011.3.02)
   1.Problem (CQ52678)
   	   Takes long time(over 3 minutes) to show failed when running nictest d3 without external loopback pluged. 
   	 Fix:    
   	   Reduce the wait for link time.
   	   
   2.Problem (CQ52639)
   	   Error messages displayed when programming selfboot patch by Manufacture command line.
   	 Fix:    
   	   Remove unnecessary warning messages during selfboot patch programming.
   	   
   3.Problem (CQ53001)
   	   NCSI fw can be programed on 5761.
   	 Fix:    
   	   "seprg -a" restrict NC-SI/DASH/Mustang fw on proper devices.
   	   
   4.Problem (CQ52982)
   	   B57Diag doesn't show extra file in MBA area with DIR command
   	 Fix:    
   	   Implement code to support FCODE_IMAGE ind the DIR command.
      	   
   5.Problem (CQ51247)
   	   UEFI b57diag: G Group tests are not ran when executing default Nictest for 5719.
   	 Cause:
   	   APE does not restart properly after ape firmware download.
   	 Fix:    
   	   Pefrom a apectl reset after ape firmware download.
   
   6.Problem (CQ53211)
   	   BCM5720: B57diag does not detect ST45PE80 Flash correctly during manual strap mode.
   	 Cause:    
   	   Display typo.
   	 Fix:
   	   Display ST45PE80 Flash correctly in the manual strap mode.
   	   
   7.Problem (CQ53048)
   	   B57diag:Secfg Item 67 Is Displayed For Sawtooth.
   	 Fix:
   	   Hide Item 67 for Sawtooth in the secfg menu.   
      
   Enhancements:
   1. Add support for Snaggletooth.
   2. Add Clause 37 option for Snaggletooth.
   3. Add Link Idle Mode item in the secfg for Sawtooth/Cotopaxi/Snaggletooth.
   4. Add Force Expansion ROM Advertisement Configuration item in the secfg for Sawtooth/Cotopaxi/Snaggletooth. 
   5. Add sysop option.
   	   
Version 14.63 (2011.2.01)
   1.Problem (CQ52636)
   	   A2 Control Register test fails in Manufacturing Mode. 
   	 Cause:
   	   Some RO status bit will change during test.
   	 Fix:    
   	   Remove testing changing RO status bits that will change during test. 
   	   
Version 14.62 (2011.1.27)
   1.Problem (CQ52492)
   	   b57diag will hang at C2 test on a Dell 690 system on the middle PCI-E x4 slot. 
   	 Cause:
   	   This is time sensitive problem.  PCIE trace shows that the memory read is not 
       complete and has payload error; The system hang is due to immediately memory 
       read after CPMU SW reset in chip global reset routine.
   	 Fix:    
   	   Add some delay after CPMU SW reset. 
   	   
Version 14.61 (2011.1.24)
   1.Problem (CQ52434)
   	   5717 NIC failed Nictest C2 CPU test due to mutex error, it is only 
   	   be seen when EEE enabled. 
   	 Cause:
   	   If EEE is enabled in one port, that CPU will request/release
   	   mutex frequently to check link status.  When B57diag halting the target
   	   port during the CPU test, the other port is still running and locking/
   	   unlocking Mutex.  As a result, the CPU test failed because CPU.bin 
   	   tests all the Mutex bits and registers. 
   	 Fix:    
   	   Before running cpu.bin, halt every CPU on the same board, then reset
   	   mutex block;  after the test, reset all CPUs and reset all NVRAV blocks
   	   on same board. 

   2.Problem (CQ52465)
       5718 Fails G2 APE CPU Packet Test 
     Fix:
       Only do a chip reset if it is in serdes mode.

   3.Problem (CQ50550)
       5715 "nictest" failed in "A5"PCI Cfg Registed Test.
     Fix:
       Do not set BIT_29 for 5715 in GRC reset.

Version 14.60 (2011.1.19)
   1.Problem (CQ50074)
       After exiting b57uefi-diag. the drivers wont be unloaded.
     Cause:
       b57uefi-diag should unload uefi driver if it is loaded to avoid h/w access contention. 
     Fix:
       Added code to unload EFI drivers before exiting UEFIdiag.
       
   2.Problem (CQ52188)
       Downgrading Bootcode with Multi_SDID support for 5718 Causes a Checksum Error.
     Cause:
       The 2nd manufacture regions in NVRAM is not updated correctly due to New/Old NVRAM layout change. 
     Fix:
       Update 2nd manufacture region accordingly to the bootcode format.
       
   3.Problem (CQ50127)
       5718 B0 fails Nictest G7 APE CPU GRC Reset Test after programming Firmware from Script.
     Fix:
       Extended waiting time for the APE CPU to finish reset.
       
   4.Problem (CQ50229)
       5718B0 Fiber port 0 run nictest will failed in "G2". 
     Fix:
       Add code to support Fiber mode in G2. 
   
   5.Problem (CQ52121)
       The Subsystem Device ID will get 0000 when program image from dump image.
     Cause:
       The 2nd manufacture regions in NVRAM is not updated correctly due to New/Old NVRAM layout change. 
     Fix:
       Update 2nd manufacture region accordingly to the bootcode format.
       
   Enhancements:
   1. Improve the timing when testing D3 with a reference card during multiple iterations.
   2. Skip D1 (MAC loopback) for Sawtooth and Cotopaxi.
   
Version 14.21 (2011.1.6)
   1.Problem (CQ52057)
       Aspen B0: b57diag fails to enumerate device when otp is blank.
     Cause:
       Default clock setting may hit corner cases in some platform.
     Fix:
       Implement a workaround to select a better clock source when otp is blank.
       
   2.Problem (CQ51345)
       Add an option to program ISCSI block on all 4 ports when user programs the iSCSI boot firmware with iscsiprg command.
     Fix:
       By default to program iscsi blck on all the ports.
       
   3.Problem (CQ51346)
       Make the configure defult as IPv4 when b57diag configures the iSCSI config block. 
     Fix:
       Make Ipv4 as the default setting in the iscsi config block.
       
   4.Problem (CQ51518)
       Cotopaxi Fails Nictest D1 MAC Loopback Test. 
     Fix:
       Set correct parameters to enable Nictest D1. 
          
   Enhancements:
   1. Add multiple SDID support.
   2. Prompt the test operator to enter the mac address for every UUT when using -n, -m and -automac options.
   
Version 14.20 (2010.12.16)
   1.Problem (CQ51735)
       DID command show incorrect otp version for 57781B0.
     Fix:
       Use chip revision to display otp version.
       
   2.Problem (CQ51684)
       The "phyctrl" command doesn't work.
     Fix:
       Roll back to the old Phyctrl function.
  
Version 14.19 (2010.12.14)
   Enhancements:
    1. Replace the 'nvmcfg' command with using other commands 'dump_all_cfg' and
       'source'. The command 'dump_all_cfg' can dump configurations for all 
       devices detected into one file. The output file is a TCL script.
    2. Removed an out-of-date workaround that caused Tcl interpreter failed to 
       read data from a file.
    3. Add 'secfg' item 82 to control Gen1/Gen2, This change is applicable to 
       5717/5718/5719/5720. 
    4. Skip D1 (MAC loopback) for 57765 series.
    5. Release first working APE diag for 5719 ad5719.bin version 2.1.0.  
    6. Remove unused files from release directory; add newer firmwares that are
       used by b57diag into release sub folders.
       
Version 14.17 (2010.12.08)
   1.Problem (CQ50230)
       5718B0 fiber run nictest will failed in "D1" without cable. 
     Fix:
       Set correct PHY parameters to enable Nictest D1.

   2.Problem (CQ51514)
       The nictest -e/-n / -i / -b command doesn't work in engineering mode. 
     Cause:
       Command argument count is miss calculated when checking command options.
     Fix:
       Get the correct argument count at checking command options.

   3.Problem (CQ51516)
       The mancfg for all option key doesn't work. 
     Cause:
       Command argument count is miss calculated when checking command options.
     Fix:
       Get the correct argument count at checking command options.
      
Version 14.16 (2010.12.07)
   1.Problem (CQ51245)
       Sechksum will fail if MAC address is programmed on device 2 and 3 for 5719.
     Cause:
       Manfacture region II checksum is not updated after programming. 
     Fix:
       Update checksum accordingly.

   2.Problem (CQ51269)
       Upgrading firmware will reset MAC address and configurations to default on 5719.
     Cause:
       All ports' mac address and configurations are not saved when upgrading firmware.
     Fix:
       Save and restore MAC address and configurations of all ports after upgrading 
       firmware.

   3.Problem (CQ51301)
       UEFI b57diag: A2. Control Register Test failed when run nictest several times. 
     Cause:
       Enable the current measurement and temperature monitor process will start 
       recording in the data registers.
     Fix:
       Avoid setting current measurement and temperature monitor process.

   4.Problem (CQ51319)
       Add EEE option from SECFG menu for 57765x bc.
     Fix:
       Add EEE option in the SECFG menu.

   5.Problem (CQ50742)
       TCL execution issues with b57diag.
     Cause:
       TCL command is not reloaded and executed correctly in every loop iteration.
     Fix:
       Save and restore TCL command after each loop iteration.

   Enhancement:
   1. Add -lapp command.
   2. Add ISCSI programming for Cotopaxi.
   3. Dump NVRAM image with no address translation for bench programmer environment.
      
Version 14.15 (2010.11.18)
   1.Problem (CQ50976)
       Upgrading and Downgrading Aspen OTP patch will cause B57diag to hang.
     Cause:
       Caused by the wrong logic on sorting patches when comparing to the input image. 
     Fix:
       Re-write the code to sort patches.

   2.Problem (CQ50875)
       "All Sub Device Id" configration can't be changed when program from otp or dump image.
     Cause:
       Changed the default IDs to 0x0 when trying to overwrite the existing 
       IDs, which caused this problem.
     Fix:
       Do not regard the default IDs as 0x0 if the fields of IDs were already used.


   3.Problem (CQ50300)
       The b57diag reports incorrect NVRAM type with 4M/8M parts after programm bootcode.

     Cause:
       The 2M/4M/8M parts share same pin strap as the 2M part. Instead of using pin 
       strap, We use special method to determine the actual NVRAM size and write the 
       size to NVRAM location 0xf0. 'semode' command read the NVRAM location 0xf0 to get
       the NVRAM size. Bootcode programming can wipe out the value in 0xf0 that is 
       calculated during chip init. 'semode' will get incorrect NVRAM size after that.
     Fix:
        Recalculate and update the NVRAM location 0xf0 with the correct NVRAM size after 
        program bootcode.

   4.Problem (CQ50872)
       Programming Selfboot on Device 0 in Manufacture mode will clear MAC and config on 
       Sawtooth Device 1.
     Cause:
       MAC and configuration data of device 1 is not saved.
     Fix:
       Save device 1's MAC and configuration data.

   5.Problem (CQ50873)
       Programming Bootcode on device 0 from manufacturing mode will cause device 1 
       configurations to reset to default.
     Cause:
       The device 1's configuration data is not saved.
     Fix:
       Save device 1's MAC and configuration data.

   6.Problem (CQ51067)
       B57 diag can not program MAC addresses for each port - BCM95719A1900G.
     Cause:
       MAC addresses of other port is not saved.
     Fix:
       Save other port's MAC addresses.

   Enhancement:
   1. Add -lmac -automac and -macnum commands.
   2. Fix CQ50704.
   3. Add 4M/8M NVRAM support for Cotopaxi.
   4. Add OTP write verify_done checking and -otpwrtchk options.

Version 14.14 (2010.11.05)
   1.Problem (CA50689)
       Incorrect OTP patch version is displayed after upgrading and downgrading
       multiple times.
     Cause:
       Logic problem
     Fix:
       Correct the code logic.

   2.Problem (CQ49873)
       After MBA is programmed, 5717 NVRAM can be lockup on a specific system.
     Cause:
       B57diag disable rxCPU fastboot, so when there is GRC reset, rxCPU will 
       need to fetch code from NVRAM.  NVRAM lock up is due to timing when both
       port rxCPU hitting nvram right after ctrl-alt-del.
     Fix:
       The workaround is to not disable fastboot in B57diag for 5717.

   3.Problem (CQ50518)
       5718B0 port 1 sechksum will fail after iscsiprg" and "iscsiprg -v",
       the problem only be seen on port 1.
     Cause:
       Previous b57diag programs second port ISCSI CFG with the length 4B 
       shorter than the first port, that caused the chksum was not programmed 
       correctly.
     Fix:
       Program 2nd port ISCSI CFG with correct length.

   4.Problem (CQ50868)
       Changing Option H in secfg will also change G for Aspen OTP
     Cause:
       Previous b57diag use incorrect area.
     Fix:
       Use correct area for the option H and G.

   Enhancement:
   1. Support 57765/57785/57795 dummy device ID 0x16A3.
   2. Assign the Fiber PHY address for 5718.
   3. Support new OTP write procedure.
   
Version 14.13 (2010.10.27)
   1.Problem (CQ50395) 
       Unable to modify "VPD Data" from secfg on 5718 sb. 
     Fix: 
       add option 'f' for VPD configuration back to 'secfg' menu.
       
   2.Problem (CQ50475) 
       UEFI b57diag: To do "sedump" then show "Cannot open 204.bin". 
     Fix: 
       Use the correct file attribute when writing to sedump files.
       
   3.Problem (CQ50478) 
       UEFI b57diag: To do "upgfrm" from otp:v2.03i to 2.04 will show "Diffed @ 9". 
     Cause: 
       Pointer casting error. 
     Fix: 
       Use the correct pointer casting for Aspen.
   
   4.Problem (CQ50480) 
       The card readers does not categorize by device when plug in two ASPEN cards.
     Fix: 
       Resorting the ASPEN devices accordingly.
      
   5.Problem (CQ50498) 
       UEFI b57diag:: Nictest does not stop if "Ctrl+C or ESC" to aborted testing when running multiple iterations. 
     Cause: 
       The stop condition is not cleared when error occurs. 
     Fix: 
       Set the stop condition correctly.
           
   6.Problem (CQ50520) 
       UEFI b57diag: Change item 76/ 77/ 78 to disabled in secfg will casue diag crash when type "dev -r".
     Cause: 
       UEFI does not rescan the devices. 
     Fix: 
       The workaround to this problem is to do a sanity check by reading VID and DID. Any enabled and working device will return its 
       VID and DID as normal. But if the device is disabled, all F's will be read. So, UEFIdiag can check if it is disabled or not.
       
   7.Problem (CQ50582) 
       B57diag: Unable to set bit 23 of reg0x3668 in B57diag. 
     Cause: 
       Missing CR_ACT_LED options in the legacy boot and selfboot config menu. 
     Fix: 
       Add CR_ACT_LED item in the config menu.
        
   Enhancement:
   1. Update "sedump -f filename.bin" for Aspen devices.
   2. CQ48450 To modify EEPROM WP control pin from GPIO1 to GPIO0 in B57diag.
   3. CQ49633 To assign GPIO0 to control EEPROM WP on 48-pin Aspen devices.
   4. Update "sever" command to return boot code version. 
   5. CQ49890 Add the ability to select the number of MSI-X vectors in NVRAM for Sawtooth.
   6. CQ50456 Remove EEE option from SECFG menu for 5718 sb.
   
Version 14.12 (2010.10.15)
   1.Problem (CQ49974)
     OTP will get Mismatched OTP data when compared to file when upgrading a 
     dump'd selfboot image. 
       
   2.Problem (CQ50330)
     Manufacture programming a sedump'd otp image will fail .

   3.Problem (CQ50160)
       Program bootcode will failed under manufacturing mode.
     Cause:
       Update the Manufacturing information II region's mac addresses causes 
       the NVRAM content check failure.
     Fix:
       Only update the mac addresses in the manufacture Information II for 
       5719 device.
  	    
  4.Problem (CQ49541)
      B57diag failed to display 'qstat' correctly.
    Cause:
      The program only terminates one port from transmitting instead of both
      ports. This will cause the qstat displayed incorrectly.
    Fix:
      B57diag will terminates both ports from transmitting further packets 
      after the ESC key is pressed.
        
   5.Problem (CQ50361, CQ50396, Cq50393)
       Unable to program Dash firmware using "seprg -a -k450 5761tm1.43". When 
       above command is executed with 14.15.04 diag, 'RSA verification error'
       is displayed.
     Cause:
       Memory corruption that introduced by recent code change.  
     Fix:
       Allocate correct size of memory to avoid the memory corruption.  This 
       fix also relate the system crash or hang that reported in other CQs.
        
   6.Problem (CQ50038, 50433, 50394)
       B57diag is unable to program sb_patch on 5718 B0 chip.
     Cause:
       Previous version didn't has the Selfboot rev 6 support that is required 
       for 5717/5718 B0 chip.
     Fix:
       Added Selfboot Rev 6 support.

   7.Enhancement
       Support ST45PE 2M/4M/8M parts.
       
   	    
Version 14.11 (2010.09.09)
  1. Enhancement:
       Added xD CIS restoration support. 
       Two command can be used to complete the task:
       	 a. Generate the CIS file.  This step is optional if you have the CIS 
       	    file already.  You can use a xD card that has good CIS block, issue
       	    command 'xd -i -fxx' to generate the CIS file.  xx is the file name. 
       	 b. Write the CIS data into xD card.  Please use command "xd -w0 -b0 -l0 
       	    -e -s32 -fcis_mp1g.txt ".  Press 'y' after you see the prompt "Are you
       	    sure to write to the CIS block?".  Please note, if the CIS block is 
       	    not 0, you need to change the option '-b' with CIS block number.

  2. Based on LSI design change, modified b57diag to support the new pin strap 
     for the Atmel 4M/8M and ST 4M/8M parts.  

  3. Problem (CQ49805)
       b57diag64 will show "Global Resetting CHIP...**Error** when I disabled the
       xD function.
     Cause:
       When xD is disabled, all registers are FFs include interrupt status 
       register, when ISR is called, interrupt messages are printed.
     Fix:
       Disabled xD ISR if the xD is disabled.

  4. Problem (CQ49808)
       In secfg menu, there have item 76 (MS) and 77 (SD) on b57761 but the NIC 
       card didn't have card reader support.
     Cause:
       Previous b57diag shows the configuration item if the device belongs to 
       57785 family.
     Fix:
       Change the b57diag to show the items only when the device have card 
       reader support.

Version 14.10 (2010.09.03)

  1. Problem (CQ49619)
       mancfg -i<filename.cfg> would fail to import configuration records.
     Cause:
       mancfg -i treated all import files as though they were in .ini format.
     Change:
       Fixed file extension detection logic.

  2. Problem (CQ48405)
  	   With a 5787m that programmed with selfboot code, the nictest "C8" 
  	   failed after command "setwol -e".
  	 Fix:
  	   Overwrote another dword following CRC when running the command of 
  	   'setwol -e' to enable WOL

  3. Enhancement (CQ48450)  	  
       Current EEPROM WP control is done by GPIO1 and the same pin is used 
       for other critical function on 57765 series.  Therefore, suggested
       to change the control pin to GPIO0 for LOM applications.  This fix 
       should apply to B0 only.  A0 needs GPIO0 for over current protection 
       function.
     Fix:
        Use GPIO0 for WP control. For other chips still use GPIO1.

  4. Enhancement
       . Added support for importing management config.ini files using mancfg
         -A, -M, or -R.
       . Support PLDM state sensor polling using B57diag 'apectl -s<sensorID>'.
  	   . for multi ports device like 5718 or 5719,  we use different mutex
  	     register pair for PHY reset of each port.  

  5. xD Card reader enhancement:
 	   . Read back one page to compare after write data into xD 
 	     card to make sure the data in xD card is what we expected.
 	   . Print out error message if error related interrupt received.  
 	   . check if the block is good before write.
 	   . add software ECC ability. 	   

  6. Problem:
       With three party running together (b57diag, BC, and NCSI), mutex lock
       occurs sometimes. 
     Cause:
       This is time sensitive problem.  When multiply party running, there
       is higher possibility that the mutex get locked because there are so many 
       things happen together, halt rx cpu, halt ape cpu, reboot BC, reboot NCSI, 
       mutex request and grant.
     Fix:
       Change the code to reset mutex block wherever the Rx CPU or APE-CPU get
       halted.     

  7. Problem (CQ49619)       
       To  import config record(s) from cfg data file will show ? configuration 
       records imported from xx.cfg
     Cause:
       Incorrect import file name extension parsing logic - was treating all files 
       as though they were ".ini" format.
     Fix:
       fixed the parsing logic.

  8. Enhancement (CQ49691)       
	   Add option 77 and 78 in 'secfg' to disable/enable SD/xD functions.
	   
Version 14.09 (2010.8.12)
  Fix:
  1. Problem (CQ49291)
       Please hide the card reader SSID options in OTP's secfg menu for Aspen non-card reader skus.
     Cause:
       B57diag does not differentiate non-card reader skus with card reader skus.
     Fix:
       Display SSID info according to different Aspen skus.

  2. Problem
        PHY loopback failure on 5718 port0.
     Cause:
        B57diag resets adapter when loadd driver.  During the reset, existing 
        b57diag read 3664 to determine if the port is serdes or copper.  But during 
